#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
//int main()
//{
//	int j = 0;
//	int i = 0;
//	int count = 0;
//	char arr[100] = {};
//	gets_s(arr);
//	i = strlen(arr);
//	while (j<=i)
//	{
//		if (arr[j] == ' '|| arr[j] == '\0')
//			count++;
//		j++;
//	}
//	printf("%d", count);
//	return 0;
//}

//将每一句话的单词倒序
//void a(char* arr, char* end)
//{
//  assert(arr);
//  assert(end);
//	while(arr < end)
//	{
//		char tmp = 0;
//		tmp= *arr;
//		*arr = *end;
//		*end = tmp;
//		arr++;
//		end--;
//	}
//}
//
//int main()
//{
//	char arr[100] = {0};
//	gets_s(arr);
//	int len = strlen(arr);
//	a(arr, arr + len - 1);
//	char* start = arr;
//	while (*start)
//	{
//		char* end = start;
//		while (*end != ' ' && *end != '\0')
//		{
//			end++;
//		}
//		a(start, end - 1);
//		if (*end == ' ')
//			start = end + 1;
//		else
//			start = end;
//	}
//	printf("\n%s", arr);
//}

//判断是小端存储还是大段存储
//
//int judge()
//{
//	int a = 1;
//	char* p = (char*)&a;
//	return *p;
//}
//
//int main()
//{
//	int ret = judge();
//	if (ret == 1)
//		printf("小端");
//	else
//		printf("大端");
//	return 0;
//}


//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	int* pa = arr;
//	int i = 0;
//	for (i = 0; i <10; i++)
//	{
//		printf("%d ", *(pa+i));//printf("%d ", arr[i]);
//	}
//	return 0;
//}

//2+22+222+2222
//int main()
//{
//	int a, n,i = 0;
//	scanf("%d %d", &a, &n);
//	int sum= 0;
//	int ret = 0;
//	for (i = 0; i < n; i++)
//	{
//		ret = ret * 10 + a;
//		sum = sum + ret;
//	}
//	printf("%d",sum);
//	return 0;
//}

//打印菱形
//int main()
//{
//	int line = 0;
//	scanf("%d", &line);
//	int i,j = 0;
//	for (i = 0; i < line; i++)
//	{
//		for (j = 0; j<line-1-i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j < i*2+1; j++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	for (i = 0; i < line-1; i++)
//	{
//		for (j = 0; j < i+1; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j < (line-1-i)*2-1; j++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	return 0;
//}

//恰汽水问题
//int main()
//{
//	int money = 0;
//	scanf("%d", &money);
//	int total = money;
//	int empty = money;
//	while (empty >= 2)
//	{
//		total += empty / 2;
//		empty = empty / 2 + empty % 2;
//	}
//	printf("%d", total);
//	return 0;
//}

//数组，排序 奇数在前，偶数在后
//void move(int* arr, int sz)
//{
//	int* left = arr;
//	int* right = arr + sz - 1;
//	while (left < right)
//	{
//		while (*left % 2 == 0&& (left < right))
//		{
//			while (*right % 2 == 1 && (left < right))
//			{
//				int tmp = *right;
//				*right = *left;
//				*left = tmp;
//			}
//			right--;
//		}
//		left++;
//	}
//}
//void print(int* arr, int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//int main()
//{
//    int arr[10] = {0};
//	int i = 0;
//	srand((unsigned int)time(NULL));
//	for (i = 0; i < 10; i++)
//	{
//		arr[i] = rand()%100+1;
//	}
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	move(arr,sz);
//	print(arr, sz);
//	return 0;
//}

//打印杨辉三角
int main()
{
	int arr[10][10] = { 0 };
	int i, j = 0;
	for (i = 0; i < 10; i++)
	{
		for (j = 0; j <= i; j++)
		{
			if (j == 0)
			{
				arr[i][j] = 1;
			}
			if (i == j)
			{
				arr[i][j] = 1;
			}
			if (i >= 2 && j >= 1)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}
	}
	for (i = 0; i < 10; i++)
	{
		for (i = 0; i < 10; i++)
		{
			for (j = 0; j < 32 - 2*i; j++)
			{
				printf(" ");
			}
			for (j = 0; j <= i; j++)
			{
				printf(" %3d", arr[i][j]);
			}
			printf("\n");
		}
		return 0;
	}
}